package com.gugee.ins.data.analysis.config;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * InsAnalysisConfig
 * @author Huangxin
 */
@Configuration
@Getter
public class InsAnalysisConfig {

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysis.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisDebugTimeLimit;
    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAvatar.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisAvatarDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLanguage.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisLanguageDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLocation.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisLocationDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisIncome.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisIncomeDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisMediaScore.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisMediaScoreDebugTimeLimit;

    /**
     * 日志打印时间要求
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisCategory.logTime.debug.limit:50}", autoRefreshed = true)
    long insAnalysisCategoryDebugTimeLimit;

    /**
     * insAnalysisAvatar 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisAvatar.corePollSize:2}", autoRefreshed = true)
    int insAnalysisAvatarCorePollSize;

    /**
     * insAnalysisLanguage 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisLanguage.corePollSize:2}", autoRefreshed = true)
    int insAnalysisLanguageCorePollSize;

    /**
     * insAnalysisLocation 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisLocation.corePollSize:2}", autoRefreshed = true)
    int insAnalysisLocationCorePollSize;

    /**
     * insAnalysisIncome 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisIncome.corePollSize:2}", autoRefreshed = true)
    int insAnalysisIncomeCorePollSize;

    /**
     * insAnalysisMediaScore 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisMediaScore.corePollSize:2}", autoRefreshed = true)
    int insAnalysisMediaScoreCorePollSize;

    /**
     * insAnalysisCategory 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisCategory.corePollSize:2}", autoRefreshed = true)
    int insAnalysisCategoryCorePollSize;

    /**
     * insAnalysisAccountUnusual 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisAccountUnusual.corePollSize:2}", autoRefreshed = true)
    int insAnalysisAccountUnusualCorePollSize;

    /**
     * insAnalysisAccountNormal 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisAccountNormal.corePollSize:2}", autoRefreshed = true)
    int insAnalysisAccountNormalCorePollSize;

    /**
     * insAnalysisAccountCheckUnusual 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisAccountCheckUnusual.corePollSize:2}", autoRefreshed = true)
    int insAnalysisAccountCheckUnusualCorePollSize;

    /**
     * insAnalysisBrand 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisBrand.corePollSize:2}", autoRefreshed = true)
    int insAnalysisBrandCorePollSize;

    /**
     * insAnalysisBrandCategory 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisBrandCategory.corePollSize:2}", autoRefreshed = true)
    int insAnalysisBrandCategoryCorePollSize;

    /**
     * insAnalysisAvatar kafka topic
     */
    @Value(value="${kafka.topics.insAnalysisAvatar.online}")
    String insAnalysisAvatarOnlineTopic;

    /**
     * insBloggerAccountCheckUnusual kafka topic
     */
    @Value(value="${kafka.topics.insAnalysisAccountCheckUnusual.online}")
    String insBloggerAccountCheckUnusualOnlineTopic;

    /**
     * insMBloggerActiveFollowerDataSt kafka topic
     */
    @Value(value="${kafka.topics.insMBloggerActiveFollowerDataSt.priority}")
    String insMBloggerActiveFollowerDataStPriorityTopic;

    /**
     * insMonitor kafka topic
     */
    @Value(value="${kafka.topics.insMonitor.online}")
    String insMonitorTopic;

    /**
     * insMBloggerActiveFollowerDataStPriority 消息重发最大次数
     */
    @NacosValue(value="${ins.data.analysis.message.insMBloggerActiveFollowerDataStPriority.retry:1}", autoRefreshed = true)
    int insMBloggerActiveFollowerDataStPriorityRetryTimes;

    /**
     * insAnalysisAvatar 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAvatar.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisAvatarMsgTimeMinRange;

    /**
     * insAnalysisAccountUnusual 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAccountUnusual.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisAccountUnusualMsgTimeMinRange;

    /**
     * insAnalysisAccountCheckUnusual 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAccountCheckUnusual.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisAccountCheckUnusualMsgTimeMinRange;

    /**
     * insAnalysisAccountNormal 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAccountNormal.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisAccountNormalMsgTimeMinRange;

    /**
     * insAnalysisLanguage 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLanguage.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisLanguageMsgTimeMinRange;

    /**
     * insAnalysisLocation 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLocation.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisLocationMsgTimeMinRange;

    /**
     * insAnalysisIncome 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisIncome.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisIncomeMsgTimeMinRange;

    /**
     * insAnalysisMediaScore 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisMediaScore.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisMediaScoreMsgTimeMinRange;

    /**
     * insAnalysisCategory 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisCategory.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisCategoryMsgTimeMinRange;

    /**
     * insAnalysisBrand 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisBrand.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisBrandMsgTimeMinRange;

    /**
     * insAnalysisBrandCategory 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisBrandCategory.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisBrandCategoryMsgTimeMinRange;

    /**
     * insAnalysisLanguage ai分析文本时最短文字长度
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLanguage.text.length.min:10}", autoRefreshed = true)
    int insAnalysisLanguageTextMinLength;

    /**
     * insAnalysisLanguage ai分析文本时 每次调用传递的文本个数
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisLanguage.text.count:100}", autoRefreshed = true)
    int insAnalysisLanguageTextCount;

    /**
     * insAnalysisIncome ai分析收入时 每次调用传递的个数
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisIncome.count:100}", autoRefreshed = true)
    int insAnalysisIncomeCount;

    /**
     * 头像更新后,一定时间内不再更新 单位天
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisAvatar.intervals.day:14}", autoRefreshed = true)
    int insAnalysisAvatarIntervalDay;

    /**
     * 国家更新后,一定时间内不再更新 单位天
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisNation.intervals.day:7}", autoRefreshed = true)
    int insAnalysisNationIntervalDay;

    /**
     * 收入更新后,一定时间内不再更新 单位天
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisIncome.intervals.day:7}", autoRefreshed = true)
    int insAnalysisIncomeIntervalDay;

    /**
     * insAnalysisMediaScore 数据查询时间范围
     */
    @NacosValue(value = "${ins.data.analysis.insAnalysisMediaScore.query.latestDays:30}", autoRefreshed = true)
    int insAnalysisMediaScoreLatestDays;

    /**
     * 成为大博主的最小粉丝数
     */
    @NacosValue(value = "${ins.data.analysis.insAnalysisAccountCheckUnusual.follower.count.min:50000}", autoRefreshed = true)
    int insBloggerMainFollowerCountMin;

    /**
     * 验证 uid 账号异常为销号的次数
     */
    @NacosValue(value = "${ins.data.analysis.insAnalysisAccountCheckUnusual.unusual.count:3}", autoRefreshed = true)
    int insAnalysisAccountCheckUnusualCount;

    /**
     * 验证 uid 账号异常 是存储在redis 的key 的过期时间
     */
    @NacosValue(value = "${ins.data.analysis.insAnalysisAccountCheckUnusual.redis.timeout.day:7}", autoRefreshed = true)
    int insAnalysisAccountCheckUnusualRedisTimeoutDay;

    /**
     * insAnalysisProductCategory 主线程池数
     */
    @NacosValue(value="${ins.data.threadpools.insAnalysisProductCategory.corePollSize:2}", autoRefreshed = true)
    int insAnalysisProductCategoryCorePollSize;

    /**
     * insAnalysisCategory 消息时限范围
     */
    @NacosValue(value="${ins.data.analysis.insAnalysisProductCategory.accept.minTime.limit:1440}", autoRefreshed = true)
    int acceptInsAnalysisProductCategoryMsgTimeMinRange;
}
